package co.gov.medellin.sdep.sisdep.regulacion.service;

import java.util.List;

import co.gov.medellin.sdep.sisdep.model.SolicitudPermiso;
import co.gov.medellin.sdep.sisdep.model.SolicitudRevalidacion;
import co.gov.medellin.sdep.sisdep.regulacion.exception.SolicitudRevalidacionException;

/**
 * @author Usuario
 * 
 */
public interface ISolicitudRevalidacionService {

	/**
	 * 
	 * @param newSolicitudRevalidacion
	 * @throws SolicitudRevalidacionException
	 */
	void insert(SolicitudRevalidacion newSolicitudRevalidacion)
			throws SolicitudRevalidacionException;

	/**
	 * 
	 * @param newSolicitudRevalidacion
	 * @throws SolicitudRevalidacionException
	 */
	void update(SolicitudRevalidacion newSolicitudRevalidacion)
			throws SolicitudRevalidacionException;

	/**
	 * 
	 * @param newSolicitudRevalidacion
	 * @throws SolicitudRevalidacionException
	 */
	void delete(SolicitudRevalidacion newSolicitudRevalidacion)
			throws SolicitudRevalidacionException;

	/**
	 * 
	 * @param start
	 * @param limit
	 * @param criteria
	 * @return
	 * @throws SolicitudRevalidacionException
	 */
	List load(int start, int limit, SolicitudRevalidacion criteria)
			throws SolicitudRevalidacionException;

	/**
	 * 
	 * @param id
	 * @return
	 * @throws SolicitudRevalidacionException
	 */
	SolicitudRevalidacion get(long id) throws SolicitudRevalidacionException;

	/**
	 * 
	 * @param solicitudrevalidacion
	 * @return
	 * @throws SolicitudRevalidacionException
	 */
	Double getAgeOfTrader(long idPersona) throws SolicitudRevalidacionException;

	/**
	 * 
	 * @param solicitudrevalidacion
	 * @return
	 */
	SolicitudPermiso findLastGrant(SolicitudRevalidacion solicitudrevalidacion);

}
